import jieba
from collections import Counter

# 读取temp.txt文件
with open('temp.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 使用jieba进行分词
words = jieba.lcut(text)

# 过滤掉空字符串和单字符（除了一些有意义的单字）
filtered_words = [word for word in words if len(word) > 1 or word in ['好', '了', '的', '是', '不', '人', '一', '有', '在', '这', '个', '上', '中', '大', '为', '来', '可', '也', '要', '而', '会', '地', '到', '以', '说', '时', '着', '与', '并', '等', '之', '部', '度', '家', '如', '便', '自', '从', '由', '去', '把', '然', '于', '下', '方', '前', '其', '后', '作', '经', '但', '因', '果', '对', '就', '很', '更', '只', '还', '又', '已', '无', '才', '给', '于', '使', '那', '呢', '吧', '被', '至', '此', '当', '些', '哪', '您', '将', '每', '且', '啦', '吗', '啊', '哦', '嗯', '嘿', '哎', '呀', '哦', '呵', '哈', '哇', '哩', '哟', '嗯']]

# 统计词频
word_count = Counter(filtered_words)

# 获取高频词汇并按频率排序
most_common_words = word_count.most_common(50)  # 显示前50个高频词

# 打印结果
print("《红楼梦》高频词汇列表（按词频从高到低）：")
print("-" * 30)
for i, (word, count) in enumerate(most_common_words, 1):
    print(f"{i:2d}. {word:<10} {count:>5}次")